//Defines direct from the CotW code
//These are here until such time as a better place is found for them(they're copy&paste portable)

//Bit Flag related stuff
/*****************************************
Stuff from sapphiremagus's library
*****************************************/
#define SET_BIT(VAR,BIT)	VAR |= BIT
#define CLEAR_BIT(VAR,BIT)	VAR &= ~BIT
#define CHECK_BIT(VAR,BIT)	((VAR) & (BIT))

#define FMonStat(pmon, stat)	 (pmon.status & stat)
#define SetMonStat(pmon, stat)	 pmon.status |= stat
#define ResetMonStat(pmon, stat)	 pmon.status &= ~stat

/* Some defines needed for these defines to work */

// #define DEMO // In the future, will combine both demo and non-demo monsters
// Are these for the two different CotWs?



/* No Sounds for these monsters, currently */
#define soundSlime 0
#define soundDog 0
#define soundBat 0

#define mstatAwake 		0x00000001
#define mstatMobile 	0x00000002
#define mstatHostile 	0x00000004
#define mstatWandering 	0x00000008
#define mstatAfraid		0x00000010
#define mstatConfused	0x00000020
#define mstatInvisible 	0x00000040
#define mstatAttacked	0x00000080
#define mstatOnScreen	0x00000100
#define mstatSlept		0x00000200
#define mstatOnStairs	0x00000400
	/* Awake, Mobile, Wandering, and Hostile */
#define mstatStandard	0x0000000F
#define mstatSpecial 	0x00000006

/* These mean immune */
#define mattribIFlame		0x00000001
#define mattribICold		0x00000002
#define mattribILightning	0x00000004
#define mattribIAcid		0x00000008
#define mattribINormal		0x00000010
#define mattribIPoison		0x00000020
#define mattribIDrainLife	0x00000040
#define mattribIConfusion	0x00000080
#define mattribIFear		0x00000100
#define mattribISleep		0x00000200
/* These mean 1/2 damage */
#define mattribRFlame		0x00000400
#define mattribRCold		0x00000800
#define mattribRLightning	0x00001000
#define mattribRAcid		0x00002000
#define mattribRNormal		0x00004000
#define mattribRPoison		0x00008000
#define mattribRMagic		0x00010000
#define mattribOpenDoor		0x00020000
#define mattribBreakDoor	0x00040000
#define mattribStairsUp		0x00080000
#define mattribStairsDown	0x00100000
#define mattribRock			0x00200000
#define mattribSecretDoor	0x00400000
#define mattribLockedDoor	0x00800000
#define mattribSymmetric	0x80000000
/* monster category */
/****
These are used to categorize monsters so we can check for things like:
Evil, Dragon, Undead, Cold Using, Reptile, etc. Can't use monType since
some of these cut across types or just include subtypes
****/
#define	mcatNormal			0x0000
#define	mcatDragon			0x0001
#define	mcatColdUsing		0x0002
#define	mcatFireUsing		0x0004
#define	mcatEvil			0x0008
#define	mcatElemental		0x0010
#define	mcatUndead			0x0020
#define	mcatReptile			0x0040
#define	mcatAvian			0x0080
#define	mcatRegenerating	0x0100
#define	mcatGiant			0x0200
#define	mcatDemon			0x0400
#define mcatMagicUsing		0x0800
#define mcatLightningUsing	0x1000
#define mcatDevil			0x2000

/* attack types */
//Switched these to base 1
#define attackNormalHit		1
#define	attackFire			2
#define attackCold			3
#define attackAcid			4
#define attackLightning		5
#define attackPoison1		6
#define attackPoison2		7
#define attackPoison3		8
#define attackExpDrain 		9
#define attackStatDrain		10
#define attackObjDrain		11
#define attackObjDestroy	12
#define attackObjSteal		13
#define attackDisease		14
#define attackManaDrain		15
#define attackFear			16
#define attackConfusion		17
#define attackSlow			18
#define attackBlind			19
#define attackSpell			20
#define attackClaw			21	/* really normal */
#define attackBite			22	/* really normal */
#define attackTrample		23	/* really normal */
/* breaths must be continuous (and fire must be first) */
#define attackBreathFire	24
#define attackBreathCold	25
#define attackBreathAcid	26
#define attackBreathLightning	27
#define attackBreathPoison		28
#define attackTailLash			29
#define attackThrowBoulder		30
#define attackThrowIceball		31
#define attackHurlTailSpike		32
#define attackBuffet			33	/* really normal */
#define attackParalysis			34
#define attackFireArrow			35	/* really normal */
#define attackHPDrain			36
#define attackWhirlwind			37
/***
Need to modify mapAttackTypePAttrib[]
FMonsterImmune(pmonster, attackType)
FMonsterResists(pmonster, attackType)
FNormalDamage in cwmon.c
OutHitSz(pmonster, pattack)
FPlayerImmune
***/


#define	mtHuman				1
#define mtHumanoid			2
#define mtGiant				3
#define mtReptile			4
#define mtDragon			5
#define mtBlob				6
#define mtPlants			7
#define mtDemon				8
#define mtAvian				9
#define mtSpirit			10
#define mtAnimal			11
#define mtArachnid			12
#define mtFish				13
#define mtElemental			14
#define mtDevil				15
#define mtMisc				16
#define mtSpecial			17
#define mtMax				18

#define mtNil				255

#define	mtHuman				0
#define mtHumanoid			1
#define mtGiant				2
#define mtReptile			3
#define mtDragon			4
#define mtBlob				5
#define mtPlants			6
#define mtDemon				7
#define mtAvian				8
#define mtSpirit			9
#define mtAnimal			10
#define mtArachnid			11
#define mtFish				12
#define mtElemental			13
#define mtDevil				14
#define mtMisc				15
#define mtSpecial			16
#define mtMax				17

#define mtNil				255

#ifdef DEMO
#define NumHuman			6
#define NumHumanoid			10
#define NumGiant			4
#define NumReptile			5
#define NumDragon			10
#define NumBlob				4
#define NumPlants			1
#define NumDemon			1
#define NumAvian			1
#define NumSpirit			9
#define NumAnimal			11
#define NumArachnid			4
#define NumFish				1
#define NumElemental		2
#define NumDevil			2
#define NumMisc				3
#define NumSpecial			3

/* Monster subtypes */
#define mstHumanFirst		0
#define mstHumanoidFirst	(mstHumanFirst + NumHuman)
#define mstGiantFirst		(mstHumanoidFirst + NumHumanoid)
#define mstReptileFirst		(mstGiantFirst + NumGiant)
#define mstDragonFirst		(mstReptileFirst + NumReptile)
#define mstBlobFirst		(mstDragonFirst + NumDragon)
#define mstPlantsFirst		(mstBlobFirst + NumBlob)
#define mstDemonFirst		(mstPlantsFirst + NumPlants)
#define mstAvianFirst		(mstDemonFirst + NumDemon)
#define mstSpiritFirst		(mstAvianFirst + NumAvian)
#define mstAnimalFirst		(mstSpiritFirst + NumSpirit)
#define mstArachnidFirst	(mstAnimalFirst + NumAnimal)
#define mstFishFirst		(mstArachnidFirst + NumArachnid)
#define mstElementalFirst	(mstFishFirst + NumFish)
#define mstDevilFirst		(mstElementalFirst + NumElemental)
#define mstMiscFirst		(mstDevilFirst + NumDevil)
#define mstSpecialFirst		(mstMiscFirst + NumMisc)

#define mstThief			(mstHumanFirst + 0)
#define mstBandit			(mstHumanFirst + 1)
#define mstWarrior			(mstHumanFirst + 2)
#define mstBerserker		(mstHumanFirst + 3)
#define mstHU1				(mstHumanFirst + 4)
#define mstHU2				(mstHumanFirst + 5)
#define mstGoblin			(mstHumanoidFirst + 0)
#define mstKobold			(mstHumanoidFirst + 1)
#define mstHobGoblin		(mstHumanoidFirst + 2)
#define mstOrc				(mstHumanoidFirst + 3)
#define mstGoblinFighter	(mstHumanoidFirst + 4)
#define mstRatMan			(mstHumanoidFirst + 5)
#define mstWolfMan			(mstHumanoidFirst + 6)
#define mstBearMan			(mstHumanoidFirst + 7)
#define mstHUU1				(mstHumanoidFirst + 8)
#define mstHUU2				(mstHumanoidFirst + 9)
#define mstOgre				(mstGiantFirst + 0)
#define mstTroll			(mstGiantFirst + 1)
#define mstHillGiant		(mstGiantFirst + 2)
#define mstGU1				(mstGiantFirst + 3)
#define mstSnake			(mstReptileFirst + 0)
#define mstViper			(mstReptileFirst + 1)
#define mstLizard			(mstReptileFirst + 2)
#define mstRU1				(mstReptileFirst + 3)
#define mstRU2				(mstReptileFirst + 4)
#define mstYORedDragon		(mstDragonFirst + 0)
#define mstYARedDragon		(mstDragonFirst + 1)
#define mstYOBlueDragon		(mstDragonFirst + 2)
#define mstYABlueDragon		(mstDragonFirst + 3)	/* 20 */
#define mstYOWhiteDragon		(mstDragonFirst + 4)
#define mstYAWhiteDragon		(mstDragonFirst + 5)
#define mstYOGreenDragon		(mstDragonFirst + 6)
#define mstYAGreenDragon		(mstDragonFirst + 7)
#define mstYOBlackDragon		(mstDragonFirst + 8)
#define mstYABlackDragon		(mstDragonFirst + 9)
#define mstGreenSlime		(mstBlobFirst + 0)
#define mstGelatinousCube	(mstBlobFirst + 1)
#define mstBLOBU1			(mstBlobFirst + 2)
#define mstBLOBU2			(mstBlobFirst + 3)
#define mstPlantU0			(mstPlantFirst + 0)
#define mstDemonU0			(mstDemonFirst + 0)
#define mstAvianU0			(mstAvianFirst + 0)
#define mstSkeleton			(mstSpiritFirst + 0)
#define mstZombie			(mstSpiritFirst + 1)
#define mstGhost			(mstSpiritFirst + 2)
#define mstTunnelWight		(mstSpiritFirst + 3)
#define mstBarrowWight		(mstSpiritFirst + 4)
#define mstPaleWraith		(mstSpiritFirst + 5)
#define mstShadow			(mstSpiritFirst + 6)
#define mstUndead1			(mstSpiritFirst + 7)
#define mstUndead2			(mstSpiritFirst + 8)
#define mstRat				(mstAnimalFirst + 0)
#define mstDog				(mstAnimalFirst + 1)	/* 30 */
#define mstCarrionCrawler	(mstAnimalFirst + 2)
#define mstBat				(mstAnimalFirst + 3)
#define mstManticore		(mstAnimalFirst + 4)
#define mstWolf				(mstAnimalFirst + 5)
#define mstWhiteWolf		(mstAnimalFirst + 6)
#define mstBear				(mstAnimalFirst + 7)
#define mstCaveBear			(mstAnimalFirst + 8)
#define mstAnimal1			(mstAnimalFirst + 9)
#define mstAnimal2			(mstAnimalFirst + 10)
#define mstAnt				(mstArachnidFirst + 0)
#define mstSpider			(mstArachnidFirst + 1)
#define mstScorpion			(mstArachnidFirst + 2)
#define mstArachnid0		(mstArachnidFirst + 3)
#define mstFish0			(mstFishFirst + 0)
#define mstElemental1		(mstElementalFirst + 0)
#define mstElemental2		(mstElementalFirst + 1)
#define mstBarbedDevil		(mstDevilFirst + 0)
#define mstDevil7			(mstDevilFirst + 1)
#define mstBronzeStatue			(mstMiscFirst + 0)
#define mstWoodStatue			(mstMiscFirst + 1)
#define mstMisc4				(mstMiscFirst + 2)
#define mstHillGiantEmmissary	(mstSpecialFirst + 0)
#define mstSpecial1				(mstSpecialFirst + 1)
#define mstSpecial2				(mstSpecialFirst + 2)
#define cMonstersMax			(mstSpecialFirst + 3)

#define mstNil				255

#define cTriesMax			3		/* max try to find a random move */


#define MonLevelLastImp		10

#define cMonLevelMax		(0x14 + (wGameDifficulty * 2))

#else
#define NumHuman			8
#define NumHumanoid			11
#define NumGiant			10
#define NumReptile			6
#define NumDragon			30
#define NumBlob				4
#define NumPlants			1
#define NumDemon			1
#define NumAvian			1
#define NumSpirit			21
#define NumAnimal			11
#define NumArachnid			4
#define NumFish				1
#define NumElemental		9
#define NumDevil			8
#define NumMisc				5
#define NumSpecial			10

/* Monster subtypes */
#define mstHumanFirst		0
#define mstHumanoidFirst	(mstHumanFirst + NumHuman)
#define mstGiantFirst		(mstHumanoidFirst + NumHumanoid)
#define mstReptileFirst		(mstGiantFirst + NumGiant)
#define mstDragonFirst		(mstReptileFirst + NumReptile)
#define mstBlobFirst		(mstDragonFirst + NumDragon)
#define mstPlantsFirst		(mstBlobFirst + NumBlob)
#define mstDemonFirst		(mstPlantsFirst + NumPlants)
#define mstAvianFirst		(mstDemonFirst + NumDemon)
#define mstSpiritFirst		(mstAvianFirst + NumAvian)
#define mstAnimalFirst		(mstSpiritFirst + NumSpirit)
#define mstArachnidFirst	(mstAnimalFirst + NumAnimal)
#define mstFishFirst		(mstArachnidFirst + NumArachnid)
#define mstElementalFirst	(mstFishFirst + NumFish)
#define mstDevilFirst		(mstElementalFirst + NumElemental)
#define mstMiscFirst		(mstDevilFirst + NumDevil)
#define mstSpecialFirst		(mstMiscFirst + NumMisc)

#define mstWizard			(mstHumanFirst + 0)
#define mstThief			(mstHumanFirst + 1)
#define mstBandit			(mstHumanFirst + 2)
#define mstWarrior			(mstHumanFirst + 3)
#define mstBerserker		(mstHumanFirst + 4)
#define mstNecromancer		(mstHumanFirst + 5)
#define mstHU1				(mstHumanFirst + 6)
#define mstHU2				(mstHumanFirst + 7)
#define mstGoblin			(mstHumanoidFirst + 0)
#define mstKobold			(mstHumanoidFirst + 1)
#define mstHobGoblin		(mstHumanoidFirst + 2)
#define mstOrc				(mstHumanoidFirst + 3)
#define mstGoblinFighter	(mstHumanoidFirst + 4)
#define mstRatMan			(mstHumanoidFirst + 5)
#define mstWolfMan			(mstHumanoidFirst + 6)
#define mstBearMan			(mstHumanoidFirst + 7)
#define mstBullMan			(mstHumanoidFirst + 8)
#define mstHUU1				(mstHumanoidFirst + 9)
#define mstHUU2				(mstHumanoidFirst + 10)
#define mstOgre				(mstGiantFirst + 0)
#define mstTroll			(mstGiantFirst + 1)
#define mstFireGiant		(mstGiantFirst + 2)
#define mstFrostGiant		(mstGiantFirst + 3)
#define mstHillGiant		(mstGiantFirst + 4)
#define mstStoneGiant		(mstGiantFirst + 5)
#define mstEttin			(mstGiantFirst + 6)
#define mstGU1				(mstGiantFirst + 7)
#define mstGU2				(mstGiantFirst + 8)
#define mstGU3				(mstGiantFirst + 9)
#define mstSnake			(mstReptileFirst + 0)
#define mstViper			(mstReptileFirst + 1)
#define mstLizard			(mstReptileFirst + 2)
#define mstRU1				(mstReptileFirst + 3)
#define mstRU2				(mstReptileFirst + 4)
#define mstRU3				(mstReptileFirst + 5)
#define mstYORedDragon		(mstDragonFirst + 0)
#define mstYARedDragon		(mstDragonFirst + 1)
#define mstADRedDragon		(mstDragonFirst + 2)	/* 15 */
#define mstOLRedDragon		(mstDragonFirst + 3)
#define mstVORedDragon		(mstDragonFirst + 4)
#define mstANRedDragon		(mstDragonFirst + 5)
#define mstYOBlueDragon		(mstDragonFirst + 6)
#define mstYABlueDragon		(mstDragonFirst + 7)	/* 20 */
#define mstADBlueDragon		(mstDragonFirst + 8)
#define mstOLBlueDragon		(mstDragonFirst + 9)
#define mstVOBlueDragon		(mstDragonFirst + 10)
#define mstANBlueDragon		(mstDragonFirst + 11)
#define mstYOWhiteDragon		(mstDragonFirst + 12)
#define mstYAWhiteDragon		(mstDragonFirst + 13)
#define mstADWhiteDragon		(mstDragonFirst + 14)
#define mstOLWhiteDragon		(mstDragonFirst + 15)
#define mstVOWhiteDragon		(mstDragonFirst + 16)
#define mstANWhiteDragon		(mstDragonFirst + 17)
#define mstYOGreenDragon		(mstDragonFirst + 18)
#define mstYAGreenDragon		(mstDragonFirst + 19)
#define mstADGreenDragon		(mstDragonFirst + 20)
#define mstOLGreenDragon		(mstDragonFirst + 21)
#define mstVOGreenDragon		(mstDragonFirst + 22)
#define mstANGreenDragon		(mstDragonFirst + 23)
#define mstYOBlackDragon		(mstDragonFirst + 24)
#define mstYABlackDragon		(mstDragonFirst + 25)
#define mstADBlackDragon		(mstDragonFirst + 26)
#define mstOLBlackDragon		(mstDragonFirst + 27)
#define mstVOBlackDragon		(mstDragonFirst + 28)
#define mstANBlackDragon		(mstDragonFirst + 29)
#define mstGreenSlime		(mstBlobFirst + 0)
#define mstGelatinousCube	(mstBlobFirst + 1)
#define mstBLOBU1			(mstBlobFirst + 2)
#define mstBLOBU2			(mstBlobFirst + 3)
#define mstPlantU0			(mstPlantFirst + 0)
#define mstDemonU0			(mstDemonFirst + 0)
#define mstAvianU0			(mstAvianFirst + 0)
#define mstSkeleton			(mstSpiritFirst + 0)
#define mstZombie			(mstSpiritFirst + 1)
#define mstGhost			(mstSpiritFirst + 2)
#define mstSpectre			(mstSpiritFirst + 3)
#define mstVampire			(mstSpiritFirst + 4)
#define mstTunnelWight		(mstSpiritFirst + 5)
#define mstBarrowWight		(mstSpiritFirst + 6)
#define mstCastleWight		(mstSpiritFirst + 7)
#define mstPaleWraith		(mstSpiritFirst + 8)
#define mstDarkWraith		(mstSpiritFirst + 9)
#define mstAbyssWraith		(mstSpiritFirst + 10)
#define mstShadow			(mstSpiritFirst + 11)
#define mstSkeletonOgre		(mstSpiritFirst + 12)
#define mstSkeletonGiant	(mstSpiritFirst + 13)
#define mstSkeletonBear		(mstSpiritFirst + 14)
#define mstZombieOgre		(mstSpiritFirst + 15)
#define mstZombieGiant		(mstSpiritFirst + 16)
#define mstUndead1			(mstSpiritFirst + 17)
#define mstUndead2			(mstSpiritFirst + 18)
#define mstUndead3			(mstSpiritFirst + 19)
#define mstUndead4			(mstSpiritFirst + 20)
#define mstRat				(mstAnimalFirst + 0)
#define mstDog				(mstAnimalFirst + 1)	/* 30 */
#define mstCarrionCrawler	(mstAnimalFirst + 2)
#define mstBat				(mstAnimalFirst + 3)
#define mstManticore		(mstAnimalFirst + 4)
#define mstWolf				(mstAnimalFirst + 5)
#define mstWhiteWolf		(mstAnimalFirst + 6)
#define mstBear				(mstAnimalFirst + 7)
#define mstCaveBear			(mstAnimalFirst + 8)
#define mstAnimal1			(mstAnimalFirst + 9)
#define mstAnimal2			(mstAnimalFirst + 10)
#define mstAnt				(mstArachnidFirst + 0)
#define mstSpider			(mstArachnidFirst + 1)
#define mstScorpion			(mstArachnidFirst + 2)
#define mstArachnid0		(mstArachnidFirst + 3)
#define mstFish0			(mstFishFirst + 0)
#define mstAirElemental		(mstElementalFirst + 0)
#define mstEarthElemental	(mstElementalFirst + 1)
#define mstFireElemental	(mstElementalFirst + 2)
#define mstWaterElemental	(mstElementalFirst + 3)
#define mstMagmaElemental	(mstElementalFirst + 4)
#define mstIceElemental		(mstElementalFirst + 5)
#define mstDustElemental	(mstElementalFirst + 6)
#define mstElemental1		(mstElementalFirst + 7)
#define mstElemental2		(mstElementalFirst + 8)
#define mstBarbedDevil		(mstDevilFirst + 0)
#define mstHornedDevil		(mstDevilFirst + 1)
#define mstIceDevil			(mstDevilFirst + 2)
#define mstPitDevil			(mstDevilFirst + 3)
#define mstDevil4			(mstDevilFirst + 4)
#define mstDevil5			(mstDevilFirst + 5)
#define mstDevil6			(mstDevilFirst + 6)
#define mstDevil7			(mstDevilFirst + 7)
#define mstBronzeStatue			(mstMiscFirst + 0)
#define mstIronStatue			(mstMiscFirst + 1)
#define mstMarbleStatue			(mstMiscFirst + 2)
#define mstWoodStatue			(mstMiscFirst + 3)
#define mstMisc4				(mstMiscFirst + 4)
#define mstSurtur				(mstSpecialFirst + 0)
#define mstHillGiantKing		(mstSpecialFirst + 1)
#define mstStoneGiantKing		(mstSpecialFirst + 2)
#define mstFrostGiantKing		(mstSpecialFirst + 3)
#define mstFireGiantKing		(mstSpecialFirst + 4)
#define mstPrisoner				(mstSpecialFirst + 5)
#define mstSpecial6				(mstSpecialFirst + 6)
#define mstSpecial7				(mstSpecialFirst + 7)
#define mstSpecial8				(mstSpecialFirst + 8)
#define mstSpecial9				(mstSpecialFirst + 9)
#define cMonstersMax			(mstSpecialFirst + 10)

#define mstNil				255

#define cTriesMax			3		/* max try to find a random move */


#define MonLevelLastImp		10

#define MonDungeonLevelLast	18

#define cMonLevelMax		0x14

#endif /* DEMO */


#define AVMODPERATTACK 10

#define specialAttackMax	4 /* max number of special attacks a player can have */

#define cAttacksMax 5

#define True 1
#define False 0
#define true 1
#define false 0

#define PlayerLevelMax 30

/* attribute defines for player */
#define pattribNil			-1
#define pattribRFlame		1
#define pattribRCold		2
#define pattribRLightning	3
#define pattribRAcid		4
#define pattribRFear		5
#define pattribRDrainLife	6
#define pattribRConfusion	7
#define pattribRNormalDamage	8
#define pattribRPoison			9
#define pattribRDisease			10
#define pattribRMagic			11
#define pattribLevitation	12
#define pattribBlindness	13
#define pattribConfusion	14
#define pattribFear			15
#define pattribStealth		16
#define pattribHeroism		17
#define pattribDisplacement	18
#define pattribInvisibility	19
#define pattribLeague		20
#define pattribTrueSight	21
#define pattribDetectMonsters	22
#define pattribParalized		23
#define pattribMax			32		/* leave some room to grow */

	/* max of items in stat array in player struct */
#define STRENGTH		0x0
#define INTELLIGENCE 	0x1
#define CONSTITUTION 	0x2
#define DEXTERITY		0x3

// Defaults:
#define cMonPerDiffDefault				5
#define cTrapPerDiffDefault				4
#define	MTHBonusPerDiffDefault			0
#define PTHPenaltyPerDiffDefault		0
#define PercentTreasurePerDiffDefault	20
#define PercentMarkupPerDiffDefault		0
#define PercentExpPerDiffDefault		0
#define ExpDeltaDefault					10
#define PercentMarkdownPerDiffDefault	10

/* ChangePlayerStat flags */
#define	changeMax			1
#define	changeDeltaTemp		2
#define changeDeltaPerm		4
#define changeDeltaObj		8


// These used to be in an enum, but they should be properly ported.
#define montreasureNull 	 0x0001
#define montreasureObject 	 0x0002 /* random 1-5 objects must be values 1-5 */
#define montreasure2Objects	 0x0004
#define montreasure3Objects	 0x0008
#define montreasure4Objects	 0x0010
#define montreasure5Objects	 0x0020
#define montreasureCopper	 0x0040
#define montreasureSilver	 0x0080
#define montreasureGold		 0x0100
#define montreasurePlatinum	 0x0200
#define montreasureCoins	 0x0400 /* random type */
#define montreasureGiant	 0x0800 /* shield or large bag & two objects */
#define montreasureMax		 0x1000

// Flags to CreateMonsterAtLoc to force awake/asleep
#define cmAwake		0x0001
#define cmAsleep	0x0002

#define NULL null